草庐IT

OutOfMemoryError 和 StackOverflowError

全部标签

java.lang.OutOfMemoryError:为 Chunk::new 请求了 1958536 字节。交换空间不足

我们在生产环境中以不可预测的方式面临以下问题有时服务器在一天内或有时在一周内关闭,下面是确切的错误dump,下面是服务器的设置。JDK:jdk1.6.0_21Server:Tomcat7.0.2OS:RedHatEnterpriseLinuxServerrelease5.5Incatalina.shthefollowingsettinghasbeendone:JAVA_OPTS="-Xms1024M-Xmx1536M-XX:+HeapDumpOnOutOfMemoryError-XX:+AggressiveOpts-XX:-DisableExplicitGC-XX:AdaptiveSi

java - 发生 OutOfMemoryError 时 Java 进程的行为

Java程序在获取OutOfMemoryError时的行为是什么?.是否有任何定义的行为?进程会崩溃还是会进入等待/hibernate状态?更新:如果我没有在我的代码中处理它? 最佳答案 并且OutOfMemoryError的处理方式与任何其他异常一样:如果它被捕获,则不会再发生任何事情。如果未被捕获,则threads或threadsgroups未捕获的异常处理程序处理它。这几乎总是导致线程停止。但是有两个因素在其他异常中并不存在:OutOfMemoryError是一个Error而不是Exception.这意味着它极不可能在任何地方

java - 为什么这个 toString() 方法会导致 StackOverFlowError?

这个问题在这里已经有了答案:CirculardependencyinJavaconstructors(5个答案)关闭4年前。我从this了解到和this回答,您的代码可能进入无限循环导致stackOverFlowError的可能情况,但我不明白如何在此处复制相同的情况,publicclassA{privateBb=newB();@OverridepublicStringtoString(){return"b"+b;}}publicclassB{privateAa=newA();@OverridepublicStringtoString(){return"";}}publicclassS

java - 设置 JVM 以在抛出 OutOfMemoryError 时转储堆

我正在尝试设置我正在使用的服务器的JVM,因此它会在发生OOME时将堆转储到文件中。我知道我必须将此选项-XX:-HeapDumpOnOutOfMemoryError添加到某处的JVM参数,但我不知道该怎么做。仅供引用,我可以通过PuTTY访问服务器,所以我正在寻找执行此操作的命令行方式。我使用的JVM是OpenJDK64位服务器VM。我不知道这是否相关,但该应用程序是一个war文件。PS:ps-ef|grepjavatomcat2383710Mar25?00:03:46/usr/lib/jvm/jre/bin/java-classpath:/usr/share/tomcat6/bin

java.lang.OutOfMemoryError : Java heap space in tomcat7 错误

我在tomcat服务器中收到此错误。Exceptioninthread"http-bio-8080-exec-17"Exceptioninthread"http-bio-8080-exec-2"Exceptioninthread"http-bio-8080-exec-15"Exceptioninthread"http-bio-8080-exec-20"Exceptioninthread"http-bio-8080-exec-18"java.lang.OutOfMemoryError:Javaheapspace.我看过MAT,但如何在我的Tomcat服务器中生成.hprof文件。谢谢。

在 Jenkins 上解析 Groovy 脚本时出现 java.lang.StackOverflowError

我们的JenkinsCI服务器出现问题。我们的CI实现依赖于几个Groovy脚本,我们在Jenkins中将它们作为“系统Groovy脚本”执行。多年来一直如此,脚本近期未进行任何修改,并实现构建流程、业务逻辑步骤(如版本检查等)。昨天,我们开始在我们尝试以某种方式启动的每个Jenkins作业中遇到异常,这些作业试图以某种方式执行Groovy脚本。异常(exception)情况是:java.lang.StackOverflowErroratorg.codehaus.groovy.antlr.parser.GroovyRecognizer.additiveExpression(Groovy

java - AspectJ 编译器错误导致 StackOverflowError

我今天遇到了AspectJ编译器的StackOverflow错误,我想我应该在StackOverflow上分享它:-)为了重现错误,我做了一个玩具示例publicabstractclassNode>implementsWithParent{privateTcontent;//getterandsetterforcontent}publicaspectWithParentAspect{privateTWithParent.parent;publicTWithParent.getParent(){returnthis.parent;}publicvoidWithParent.setPare

java - Dag 调度程序事件循环 java.lang.OutOfMemoryError : unable to create new native thread

运行5-6小时后,我从spark-driver程序中收到以下错误。我正在使用Ubuntu16.04LTS和open-jdk-8。Exceptioninthread"ForkJoinPool-50-worker-11"Exceptioninthread"dag-scheduler-event-loop"Exceptioninthread"ForkJoinPool-50-worker-13"java.lang.OutOfMemoryError:unabletocreatenewnativethreadatjava.lang.Thread.start0(NativeMethod)atjava

Java JIT 编译器导致 OutOfMemoryError

我们最近启动的一个应用程序偶尔会崩溃,并显示有关“java.lang.OutOfMemoryError:为Chunk::new请求8589934608字节。交换空间不足?”的消息。我在网上看了一圈,到处都是建议恢复到以前的Java版本摆弄内存设置使用客户端而不是服务器模式恢复到以前的版本意味着新的Java有一个错误,但我还没有看到任何迹象。内stub本不是问题;服务器有32GB可用空间,Xmx设置为20,而Xms为10。我看不到JVM用完了剩余的12GB(减去机器上少数其他进程的数量)。由于应用程序和环境的性质,我们坚持使用服务器模式。当我查看应用程序的内存和CPU使用情况时,我看到一

java - 如何在 JVM 中捕获 OutOfMemoryError 并在捕获时运行脚本?

我有一个程序有时会抛出OOME,我知道JVM选项中有一个我可以设置的标志,每当出现某个错误/异常(例如OOME)时,它就会调用我编写的脚本。该脚本将向用户发出通知,并将使用不同的参数调用程序,这样它就不会再次出现OOME。有谁知道如何设置这个标志?我需要设置哪些JVM选项?我在网上到处找,找不到答案。请帮帮我!谢谢,是啊 最佳答案 -XX:OnOutOfMemoryError="cmdargs;cmdargs"发件人:http://www.oracle.com/technetwork/java/javase/tech/vmoptio